<?
require_once("secret.php");

// **********************************************************
// Twitter への投稿 : バージョン1
// **********************************************************
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

// **********************************************************
// AOuth 用の urlencode 関数
// **********************************************************
function urle( $str ) {
	// php 5.3.x ～ ではこの変換は必要無い
	return str_replace('%7E', '~', rawurlencode($str));
}

function postToTwitter($oauth_token, $oauth_secret) {
	global $oauth_consumer_key;
	global $oauth_consumer_secret;
	$twitter_url = 'http://api.twitter.com/1/lists/members/destroy.json?slug=test&owner_screen_name=akahuku1953&screen_name=akahuku_zenzai';
	// 毎回変化するランダムな文字列
	$mt = microtime();
	$rand = mt_rand();
	$oauth_nonce = md5($mt . $rand);

	$oauth_signature_method = "HMAC-SHA1";
	$oauth_timestamp = mktime();
	$oauth_version = "1.0";

	$base_string = "POST";
	$base_string .= "&" . urle($twitter_url);
	$base_string .= "&";

	$base_string .= urle("oauth_consumer_key")."%3D".urle($oauth_consumer_key)."%26";
	$base_string .= urle("oauth_nonce")."%3D".urle($oauth_nonce)."%26";
	$base_string .= urle("oauth_signature_method")."%3D".urle($oauth_signature_method)."%26";
	$base_string .= urle("oauth_timestamp")."%3D".urle($oauth_timestamp)."%26";
	$base_string .= urle("oauth_token")."%3D".urle($oauth_token)."%26";
	$base_string .= urle("oauth_version")."%3D".urle($oauth_version);

	// **********************************************************
	// 投稿データ
	// **********************************************************



	// *********************************************************
	// シグネチャ作成
	// *********************************************************
	$oauth_signature = 
	base64_encode( hash_hmac(
		"sha1",
		$base_string,
		$oauth_consumer_secret . "&" . $oauth_secret,
		true
	));

	// *********************************************************
	// curl 処理
	// *********************************************************
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
	curl_setopt($curl, CURLOPT_URL, $twitter_url);

	// *********************************************************
	// http ヘッダ作成
	// *********************************************************
	$header = array();
	$header[] = 'Expect:';

	$header[] = "Authorization: OAuth ".
	urle("oauth_consumer_key")."=\"".urle($oauth_consumer_key)."\",".
	urle("oauth_token")."=\"".urle($oauth_token)."\",".
	urle("oauth_nonce")."=\"".urle($oauth_nonce)."\",".
	urle("oauth_timestamp")."=\"".urle($oauth_timestamp)."\",".
	urle("oauth_signature_method")."=\"".urle($oauth_signature_method)."\",".
	urle("oauth_version")."=\"".urle($oauth_version)."\",".
	urle("oauth_signature")."=\"".urle($oauth_signature)."\"";

	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

	// *********************************************************
	// https 用 ( https://api.twitter.co 利用時に必要 )
	// *********************************************************
	//curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	//curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);

	// *********************************************************
	// 戻された http ヘッダの出力
	// *********************************************************
	$handle = fopen("./header.txt", "w");
	curl_setopt($curl, CURLOPT_WRITEHEADER, $handle);

	// *********************************************************
	// 送信
	// *********************************************************
	$result = curl_exec($curl);


	// *********************************************************
	// 結果
	// *********************************************************
	print "<br>";

	if($result === false) {
		print '送信処理にエラーが発生しました: ' . curl_error($curl);
	}
	else {
		print '送信処理は正常に終了しました';
	}
	curl_close($curl);

	// *********************************************************
	// 結果表示
	// *********************************************************
	print "<br>";

	$result = json_decode( $result );

	print "<pre>";
	print_r( $result );
	print "</pre>";
}


postToTwitter($_SESSION['oauth_key'], $_SESSION['oauth_secret']);

?>